(1) Field of the Invention
The present invention relates to a digital content reproduction apparatus and a method of performing two or more types of processing while switching them in a single task device such as an IC card.
(2) Description of the Related Art
In recent years, content distribution services, in which digital contents (hereinafter referred to as “contents”) such as music, video and game software can be distributed from a server to a receiver via communication like the Internet, digital broadcast, cable television (CATV) and the like and used on the receiver, have come into practical use.
As services for distributing contents via broadcast, pay broadcast services employing a broadcast satellite (BS) and a communication satellite (CS) have already been in actual use. These services use Conditional Access System (CAS) standardized by Association of Radio Industries and Businesses (ARIB) that is a Japanese organization for standardizing digital broadcasting systems. For detailed description of CAS, see “Digital Houhou ni okeru Access Seigyo Houshiki (Access Control System in Digital Method), version 4.1”, ARIB, 2003 (Non-patent literature 1).
Under the current CAS, a broadcaster distributes encrypted contents. When receiving an encrypted content, the receiver obtains a key for decrypting the content from the IC card inserted into the receiver, decrypts the content, and views the content. In this CAS, a time-change key system is used in which an encryption key is updated on a regular basis. Therefore, the receiver needs to obtain the decryption key from the IC card at every timing when the key is updated.
By the way, IC cards have been used recently in services such as authentication and electronic money which require security, as tamper-resistance of the IC cards have been improved and storage capacity thereof have been increased. In addition, server-type broadcasting services, namely, a type of user-friendly content usage, are under consideration, in which the contents which are previously distributed under the above ARIB standard are stored in the receiver once and a user views the content that the user wants to view when he/she feels like viewing.
In order to use these various services, the user has to insert the IC card specific to each service into the receiver every time he/she uses it, which is inconvenient to the user. Therefore, as a method of processing multiple services with a single IC card, a multi-application card like a Java card has been suggested. Using this multi-application card, all that the user has to do in order to use various services is insert only one IC card into the receiver, which is very convenient to the user.
By the way, an IC card which is currently distributed operates as a single task device. In other words, an IC card is a device which starts the processing when accepting the processing request from the receiver into which the IC card is inserted, and sends a response back to the receiver and terminates the processing when completing the processing. While such a single task device is performing one type of processing, the receiver cannot have the device perform another type of processing.
For example, it is assumed that an IC card performs the processing regarding security in a content distribution system. Generally speaking, the processing regarding security requires high load processing such as encryption processing and interpretation of copyright information. Therefore, if the IC card performs such processing, it is assumed that it takes a long time to complete the processing and the receiver cannot send a new processing request to the IC card during that processing.
By the way, CAS currently in use employs a time-change key for encrypting contents. Therefore, in the case where the IC card performs the above-mentioned time-consuming processing, there is a problem that a decryption key cannot be obtained from the IC card at the timing when the decryption key is updated and thus the content cannot be decrypted. In other words, in the case where the IC card performs the processing which needs to be performed in real time and the processing which takes a long time to be performed while switching between them, there is a problem that it could be impossible to perform the real-time processing.